1. The Field of the Invention
The present invention relates to processing electronic messages, and more specifically, to maintaining structured time data for electronic messages.
2. Background and Relevant Art
Computer networks have enhanced our ability to communicate and access information by allowing one computer or device (hereinafter both referred to as a “computing system”) to communicate over a network with another computing system using electronic messages. In order for such electronic messaging to be meaningful, the receiving computing system must process the received electronic message correctly. For example, an encrypted e-mail message must be decrypted using the proper decryption algorithm, then parsed into its various components (e.g., message body and “from”, “to”, “cc” and “time sent” header fields). If decryption or parsing are performed in an incorrect manner, the e-mail would not be able to be displayed properly to a user.
Often, supplemental information is necessary or helpful in order to appropriately process a received electronic message. Sometimes, that supplemental information is locally available for retrieval at the time the electronic message is received. Other times, information from another network location is accessed in order to appropriately process the received network message.
At times, information needed to process an electronic message is included within the electronic message itself. For example, a network message can have a header field that includes information for processing the message. Unfortunately, the number and types of network fields are often restricted to fixed types of data. For example, an electronic mail message can include a header indicating the time the electronic mail message was initially sent and the time that other computing systems, through which the electronic message was routed, received the message. However, some computing systems that route electronic mail messages do not have the functionality to include other time information (e.g., time required to process a message, the time a message expires, etc.) within a header. Even computing systems that do have this functionality, often store this other time information in fixed locations within a header and/or store free-formed time information. For example, some binary-based protocols built upon TCP (i.e., that operate above TCP in a protocol stack) can include a time stamp at specific locations (e.g., at a fixed offset) within a header.
Further, for information in a header to be helpful in processing an electronic message, a computing system must be able to retrieve the information from the electronic message. Thus, even if a first computing system has the functionality to insert time information into an electronic message, other computing systems may not be natively configured to retrieve the time information and/or may require specialized parsers to locate the time information within the electronic message. For example, header information included in electronic mail messages is typically represented by an unstructured string of text. When a computing system adds new information to a header (whether it be time information or some other type of information), the new information is simply concatenated to the existing string of text.
Thus, time information along with various other types of information (e.g., type of message, subject of message, message recipients) might all be included within a header as a single unstructured string of text. However, computing systems that route electronic mail messages typically do not include the functionality to parse these unstructured strings of text to locate time information. Thus, to retrieve time information at designated routing computing systems, each designated computing system would have to include a specialized parser.
Therefore systems, methods, computer program products, and data structures for maintaining structured time data for electronic messages would be advantageous.